package com.finna.tenant.mapper;

import com.finna.tenant.entity.Account;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 账号Mapper
 */
@Mapper
public interface AccountMapper {
    
    /**
     * 插入账号
     */
    int insert(Account account);
    
    /**
     * 根据ID更新账号
     */
    int updateById(Account account);
    
    /**
     * 根据ID软删除账号
     */
    int deleteById(@Param("id") Long id);
    
    /**
     * 根据ID查询账号
     */
    Account selectById(@Param("account") Long account);
    
    /**
     * 根据邮箱查询账号
     */
    Account selectByEmail(@Param("email") String email);
    
    /**
     * 根据用户名查询账号数量（用于检查重复）
     */
    int countByUsername(@Param("username") String username);
    
    /**
     * 查询账号列表（PageHelper自动分页）
     */
    List<Account> selectList(@Param("params") Map<String, Object> params);
    /**
     * 查询所有超级管理员账号
     */
    List<Account> querySuperAdminList();
}

